package com.grades.springboot.util;

import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

import static com.grades.springboot.util.CreateMessage.createMimeMessage;

/***
 * 邮箱发送封装
 */
public class SendMail {
    /***
     *
     */
    public static void Mail_Code (String ToEMAIL,String SUBJECT,String TEXT){
        //发送邮箱验证

        /**
         * 发件⼈邮箱地址
         */
        String SEND_ACCOUNT ="2492655520@qq.com" ;
        /**
         * 发件⼈邮箱密码 - 登录邮件开启 SMTP 服务后，邮件服务商⽣成的“授权码”
         */
        String SEND_PASSWORD = "hatfqxfkqdrbeccg";//授权码
        /**
         * 发件⼈SMTP服务器地址，⼀般的格式为：smtp.xxx.com，其中xxx为邮件服务商名称
         */
        String SMTP_HOST = "smtp.qq.com";
        /**
         * 收件⼈邮箱地址
         * xxx@qq.com
         */
        String RECEIVE_ACCOUNT = ToEMAIL;

        String Verify= "学生成绩管理查询系统";

        String RECEIVE_TEXT = TEXT;


        // 参数配置，⽤于连接邮件服务器
        Properties props = new Properties();
        // 使⽤协议
        props.setProperty("mail.transport.protocol", "smtp");
        // 发件⼈邮箱的 SMTP 服务器地址
        props.setProperty("mail.smtp.host", SMTP_HOST);
        // 需要请求认证
        props.setProperty("mail.smtp.auth", "true");
        // 创建会话对象，⽤于与邮箱服务器交互
        Session sessions = Session.getInstance(props);
        // 设置为debug模式，在控制台中可以查看详细的发送⽇志
        sessions.setDebug(true);

        try {
            //创建一封邮件
            MimeMessage message = createMimeMessage(sessions, SEND_ACCOUNT, RECEIVE_ACCOUNT,SUBJECT,RECEIVE_TEXT);

            // 根据 Session 获取邮件传输对象
            Transport transport = sessions.getTransport();
            // 连接邮件服务器
            transport.connect(SEND_ACCOUNT, SEND_PASSWORD);
            // 发送邮件
            transport.sendMessage(message, message.getAllRecipients());
            // 关闭连接
            transport.close();
        }catch (Exception e){
            e.printStackTrace();
        }
    }

}